<!-- directive:title 深拷贝&浅拷贝 -->
<!-- directive:breadcrumb 深拷贝 -->
<div class='panel-body'>
    <article class="docs-content">
        <p>代码场景： </p>
        <ul>
            <li>这段代码中，A中定义为数组，存放目标对象 </li>
            <li>需要在组件1中通过循环操作将A的check值直接改变 </li>
            <li>组件2也需要这个数组 并且对其有监听</li>
            <li>组件1改变A 会触发组件2的刷新...</li>
        </ul>
        <p>操作的同时，会发现原来的A也会跟着变化，因为这就涉及到JavaScript语言中的深拷贝和浅拷贝的问题。</p>
        <p>那什么是深拷贝浅拷贝呢？</p>
        <p>简单理解来说，<code>深拷贝和浅拷贝针对于Object和Array的复杂对象</code>来说的： 浅拷贝只是对对象的地址的复制，并没有开辟新的栈内存，也就是A,A2都指向同一个栈地址，对其中一个进行删减时，另外一个的值也会同样发生变化， 深拷贝则是拷贝了对象后存放到新的栈中保存，两者指向不同的栈，改变其中一个值并不会影响到另一个的值。</p>
        <p>最简单的一个深拷贝方法：一个简单但是很有效的方法，就是代码中的<code>A2 = JSON.parse(JSON.stringify(A))</code>，将数组对象转为字符串之后就与源数组无关联，再将字符串转为数组对象，即可达到深拷贝的目的 那在对A进行删减元素时就不会影响到原来的数组了</p>
        <p>
            <script type="text/xianjs" ui-bs>
                // 代码用
                angular.copy...
                // 小程序用
                function deepcopy(obj){
                    return JSON.parse(JSON.stringify(obj))
                }
            </script>
        </p>
    </article>
</div>
